{skill.name}
{skill.description}
- {liveCopy.skills.routeKey}
- {skill.route_key || skill.id}
- {liveCopy.skills.modelType}
- {skill.model_type}
- {liveCopy.skills.latency}
- {skill.estimated_duration_s}s
- {liveCopy.skills.tags}
- {skill.tags.join(", ") || "-"}
import Link from "next/link"; import { PopiartApiError, getSkillsCatalog, getViewerSession, } from "@/lib/popiart-api"; import { getLiveCopy } from "@/lib/live-copy"; import { type Locale } from "@/lib/site-content"; export const dynamic = "force-dynamic"; function formatError(error: unknown) { if (error instanceof PopiartApiError) { return error.message; } if (error instanceof Error) { return error.message; } return String(error); } export default async function SkillsPage({ params, searchParams, }: { params: Promise<{ locale: string }>; searchParams: Promise<{ search?: string | string[] }>; }) { const { locale } = await params; const rawSearch = (await searchParams).search; const search = Array.isArray(rawSearch) ? rawSearch[0] : rawSearch; const typedLocale = locale as Locale; const liveCopy = getLiveCopy(typedLocale); const session = await getViewerSession(); if (!session) { return (
{liveCopy.skills.subtitle}
{liveCopy.skills.unauthenticatedBody}
{liveCopy.skills.subtitle}
{skill.description}
{search ? `"${search}"` : liveCopy.skills.subtitle}